using System;
using System.Collections.Generic;
using System.Text;

namespace UserInterface.MML.Base
{
    internal abstract class Token
    {
        public string Code;

        public Token(string code)
        {
            Code = code;
        }
    }

    internal class CharacterDataToken : Token
    {
        public string Data;

        public CharacterDataToken(string data) : base(data)
        {
            Data = data;
        }
    }

    internal class StartTagStartToken : Token
    {
        public string Name;

        public StartTagStartToken(string name, string code) : base(code)
        {
            Name = name;
        }
    }

    internal class StartTagEndToken : Token
    {
        public StartTagEndToken(string code) : base(code)
        {
        }
    }

    internal class AttributeNameToken : Token
    {
        public string Name;

        public AttributeNameToken(string name, string code) : base(code)
        {
            Name = name;
        }
    }

    internal class AssignmentToken : Token
    {
        public AssignmentToken(string code) : base(code)
        {
        }
    }

    internal class ValueToken : Token
    {
        public string Value;

        public ValueToken(string value, string code) : base(code)
        {
            Value = value;
        }
    }

    internal class EndTagToken : Token
    {
        public string Name;

        public EndTagToken(string name, string code) : base(code)
        {
            Name = name;
        }
    }
}
